gl renderer: Reset opacity when rendering blend node children
authorTimm Bäder <mail@baedert.org>
Sun, 6 Dec 2020 19:01:36 +0000 (20:01 +0100)
committerTimm Bäder <mail@baedert.org>
Sun, 6 Dec 2020 19:01:36 +0000 (20:01 +0100)
We render those on a texture, so we need to reset the opacity because
that will be applied when rendering the resulting texture.

gsk/gl/gskglrenderer.c

index 64996ffc705a64f38fcd6887286ec4f42b6d8d13..aa7ef5f10f30d1ade8e53699c14a73bf74a84306 100644 (file)
@@ -2735,7 +2735,7 @@ render_blend_node (GskGLRenderer   *self,
                           &node->bounds,
                           bottom_child,
                           &bottom_region, &is_offscreen1,
-                          FORCE_OFFSCREEN | RESET_CLIP))
+                          FORCE_OFFSCREEN | RESET_CLIP | RESET_OPACITY))
     {
       gsk_gl_renderer_add_render_ops (self, top_child, builder);
       return;
@@ -2745,7 +2745,7 @@ render_blend_node (GskGLRenderer   *self,
                           &node->bounds,
                           top_child,
                           &top_region, &is_offscreen2,
-                          FORCE_OFFSCREEN | RESET_CLIP))
+                          FORCE_OFFSCREEN | RESET_CLIP | RESET_OPACITY))
     {
       load_vertex_data_with_region (ops_draw (builder, NULL),
                                     &node->bounds,